npx 명령어로 모델과 테이블 생성

✒️ 2025-05-26 15:12 내용 수정


  1. VSC 터미널에서 npm i sequelize sequelize-cli으로 ORM 관련 패키지를 설치한다.
  2. 만약 mysql2가 설치되어 있지 않다면 npm i mysql2로 mysql2도 설치한다.

node_sequelize 1.png

  1. VSC 터미널에서 npx sequelize init로 sequelize를 실행해 초기 설정을 해준다.

node_sequelize 2.png

  1. 명령어 생성 후 생긴 config 폴더의 config.json 파일에서 DB를 용도별로 설정할 수 있다.
    • 개발을 위한 db 연결을 설정하는데, 기존에 없던 db라면 새로 생성해준다.
    • development : 개발을 위한 DB
    • test : 테스트를 위한 DB
    • production : 실제 배포나 서비스를 위한 DB
{
  "development": { // 개발용 DB
    "username": "사용자",
    "password": "비밀번호",
    "database": "DB이름",
    "host": "127.0.0.1", // localhost
    "dialect": "mysql",
    "port" : "3306" // port가 기본값이 아니라면 지정 필요
  },
  "test": { // 테스트용 DB
    "username": "사용자",
    "password": "비밀번호",
    "database": "DB이름",
    "host": "127.0.0.1", // localhost
    "dialect": "mysql"
  },
  "production": { // 배포 및 서비스를 위한 DB
    "username": "사용자",
    "password": "비밀번호",
    "database": "DB이름",
    "host": "127.0.0.1", // localhost
    "dialect": "mysql"
  }
}

node_sequelize 3.png

  1. VSC 터미널에서 npx sequelize db:create --env development를 입력해 설정 내용으로 db를 생성한다.

node_sequelize_error 3.png

node_sequelize 4.png

  1. VSC 터미널에서 npx sequelize model:generate --name 모델이름 --attributes 필드이름:데이터타입,필드이름:데이터타입을 작성해서 모델을 생성한다.
    • attributes의 필드들을 추가할 때 쉼표 사이에 공백이 없도록 작성한다.
    • 성공적으로 명령어가 실행되었다면 migrations 폴더에 생성된 모델 데이터가 생성된다.
// 예시 모델
npx sequelize model:generate --name Member --attributes name:string,team:string,position:string,email:string,phone:string,admissionDate:date,birthday:date,profileImage:string

node_sequelize 5.png

  1. model 파일을 확인하면 터미널에서 작성한 내용이랑 동일한 설정들이 나와있고, up/down 함수가 있다. 이 파일을 수정해서 추가적으로 생성할 테이블의 컬럼 등을 편집할 수 있다.
    • up : model 생성
    • down : model 제거

node_sequelize 6.png

node_sequelize 15.png

  1. 이제 터미널에 npx sequelize db:migrate를 입력해서 Model을 기반으로 테이블을 이식(Migration)한다.
    • 가장 최근에 이식한 테이블을 되돌린다면 npx sequelize-cli db:migrate:undo를 사용한다.
    • 모든 이식을 되돌린다면 npx sequelize-cli db:migrate:undo:all을 사용한다.

node_sequelize 7.png

  1. MySQL workbench에 접속하고 4번에서 생성해둔 DB에 테이블을 확인해보면 Node에서 만들었던 테이블과 테이블 컬럼들을 확인할 수 있다.

node_sequelize 8.png